package com.bidevalution.business.service;

import com.bidevalution.business.exception.BaseException;
import com.bidevalution.dao.entity.BeSectionWarnMsg;
import com.bidevalution.dao.entity.ExpertWarnMsgVo;

import java.util.List;

/**
 * 消息提醒service层
 * Created by glodon on 2020-02-18.
 */
public interface BeSectionWarnMsgService {

    /**
     * 获取消息提醒列表
     * @param seqId
     * @return
     */
    BeSectionWarnMsg getBeSectionWarnMsg(String seqId) throws Exception ;

    /**
     * 获取消息提醒列表信息
     * @param sectionStepId
     * @param expertId
     * @return
     */
    List<BeSectionWarnMsg> getUntreatedWarnMsgList(String sectionStepId, String expertId) throws Exception ;

    /**
     * 插入消息提醒信息
     * @param beSectionWarnMsg
     * @return
     */
    int insertWarMsg(BeSectionWarnMsg beSectionWarnMsg) throws Exception ;

    /**
     * 标记已处理消息提醒信息
     * @param seqId 信息ID
     * @param expertId 专家id
     * @param remark 回执说明
     * @return
     */
    void handleWarnMsg(String seqId, String expertId, String remark) throws Exception;

    /**
     * 获取专家打分异常的企业信息
     * @param sectionStepId
     * @param sectionId
     * @return
     * @throws Exception
     */
    List<ExpertWarnMsgVo> getExpertWarnMsgDetail(String sectionStepId, String sectionId) throws Exception;

    /**
     * 根据标段id更新处理状态
     * @param sectionId 标段id
     * @return
     * @throws Exception
     */
    void invalidAll(String sectionId) throws Exception;

    /**
     * 获取标段下有特殊备注的消息信息
     * @param sectionId
     * @param remark
     * @return
     * @throws Exception
     */
    List<BeSectionWarnMsg> getMsgByRemark(String sectionId, String remark) throws Exception;

    /**
     * 当前环节未提醒的消息全部过期处理
     * @param sectionStepId
     */
    void overdueMag(String sectionStepId);
}
